﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FRMS_N71SP.Model
{
    public class N71SPLssueinfo
    {
        public N71SPLssueinfoData ParamsInfo { get; set; }
        public string Token { get; set; } = string.Empty;
    }

    public class N71SPLssueinfoData
    {
        public string PersonID { get; set; }
        public string PersonName { get; set; }
        public int Gender { get; set; }
        public int DepartID { get; set; }
        public int Authority { get; set; }
        public string ICCardID { get; set; }
        public long EffectiveTime { get; set; }
        public long ExpireTime { get; set; }
    }

    public class N71SPLssuePicinfo
    {
        public N71SPLssuePicinfoData ParamsInfo { get; set; }
        public string Token { get; set; } = string.Empty;
    }

    public class N71SPLssuePicinfoData
    {
        public string PersonID { get; set; }
        public string Picture { get; set; }
    }

    public class DeviceLoginInfo
    {
        public DeviceLoginInfoData Params { get; set; }
    }

    public class DeviceLoginInfoData
    {
        public string UserName { get; set; }
        public string Password { get; set; }
        public int ForceLogin { get; set; }
    }

    public class LoginReturn
    {
        public string method { get; set; }
        public LoginReturnData Params { get; set; }
        public int result { get; set; }
    }

    public class LoginReturnData
    {
        public string Token { get; set; }
        public string UserGroup { get; set; }
        public string errMsg { get; set; }
    }

    public class PersonReturnData
    {
        public string method { get; set; }
        public object Params { get; set; }
        public int result { get; set; }
    }

    public class PersonDel
    {
        public PersonDelData ParamsInfo { get; set; }
        public string Token { get; set; } = string.Empty;
    }

    public class PersonDelData
    {
        public string PersonID { get; set; }
    }

    public class N71SPRecordinfo
    {
        public string Cmd { get; set; }
        public string DeviceID { get; set; }
        public int GauzeResult { get; set; }
        public long ICCardCount { get; set; }
        public string ICCardNO { get; set; }
        public string IDCardNO { get; set; }
        public int Latitude { get; set; }
        public int Longitude { get; set; }
        public string PassInOut { get; set; }
        public string PersonID { get; set; }
        public int PersonIndex { get; set; }
        public string PersonName { get; set; }
        public string QRCode { get; set; }
        public int RecordID { get; set; }
        public int RecordPass { get; set; }
        public string RecordPicture { get; set; }
        public int RecordTime { get; set; }
        public int RecordType { get; set; }
        public int SatetyHatResult { get; set; }
        public float Similarity { get; set; }
        public int Temperature { get; set; }
    }

    public class N71SPLoginInfo
    {
        public N71SPLoginInfoData ParamsInfo { get; set; }
    }

    public class N71SPLoginInfoData
    {
        public string UserName { get; set; }
        public string Password { get; set; }
        public int ForceLogin { get; set; }
    }

    public class N71SPLoginReturn
    {
        public string Token { get; set; }
        public string UserGroup { get; set; }
    }

    public class N71SPCallBackInfo
    {
        public string RecordUrl { get; set; }
        public string HeartUrl { get; set; }
        public int HeartTime { get; set; }
        public string UploadType { get; set; }
    }

    public class NS71Record
    {
        public NS71RecordData ParamsInfo { get; set; }
        public string Token { get; set; } = string.Empty;
    }
    public class NS71RecordData
    {
        public long StartTime { get; set; }
        public long EndTime { get; set; }
        public int Offset { get; set; }
    }

    public class NS71RecordReturn
    {
        public string method { get; set; }
        public NS71RecordReturnData Params { get; set; }
        public int result { get; set; }
    }

    public class NS71RecordReturnData
    {
        public int Offset { get; set; }
        public int RecordCount { get; set; }
        public int RecordTotal { get; set; }
        public List<RecordList> Records { get; set; }
    }
    public class RecordList
    {
        public int GauzeResult { get; set; }
        public long ICCardCount { get; set; }
        public string ICCardNO { get; set; }
        public string IDCardNO { get; set; }
        public int Latitude { get; set; }
        public int Longitude { get; set; }
        public string PassInOut { get; set; }
        public string PersonID { get; set; }
        public int PersonIndex { get; set; }
        public string PersonName { get; set; }
        public string QRCode { get; set; }
        public int RecordID { get; set; }
        public int RecordPass { get; set; }
        public string RecordPicture { get; set; }
        public long RecordTime { get; set; }
        public int RecordType { get; set; }
        public int SatetyHatResult { get; set; }
        public double Similarity { get; set; }
        public int Temperature { get; set; }
        public object VendorInfo { get; set; }
    }

    public class NS71PersonQuery
    {
        public NS71PersonQueryData ParamsInfo { get; set; }
        public string Token { get; set; } = string.Empty;
    }

    public class NS71PersonQueryData
    {
        public int Offset { get; set; }
    }

    public class NS71PersonReturn
    {
        public string method { get; set; }
        public NS71PersonReturnData Params { get; set; }
        public int result { get; set; }
    }

    public class NS71PersonReturnData
    {
        public int DepartID { get; set; }
        public int Offset { get; set; }
        public int PersonCount { get; set; }
        public int PersonTotal { get; set; }
        public List<PersonList> Persons { get; set; }
    }

    public class PersonList
    {
        public string Authority { get; set; }
        public string Com485Data { get; set; }
        public long CreateTime { get; set; }
        public int DepartID { get; set; }
        public long EffectiveTime { get; set; }
        public long ExpireTime { get; set; }
        public string FaceID { get; set; }
        public string FacePicture { get; set; }
        public long FaceTime { get; set; }
        public long FeatureNum { get; set; }
        public long Gender { get; set; }
        public PersonListGroup GroupInfo { get; set; }
        public string ICCardID { get; set; }
        public string ICCardID2 { get; set; }
        public object IDCardInfo { get; set; }
        public string IDCardNo { get; set; }
        public string Notes { get; set; }
        public List<PersonListPassTime> PassTime { get; set; }
        public string Password { get; set; }
        public string PersonID { get; set; }
        public string PersonID1 { get; set; }
        public string PersonName { get; set; }
        public string PersonPicture { get; set; }
        public string PicMd { get; set; }
        public string QRCode { get; set; }
        public long RecordTime { get; set; }
        public long RemoveTime { get; set; }
        public string Status { get; set; }
        public object VendorInfo { get; set; }
        public string WorkID { get; set; }

    }

    public class PersonListGroup
    {
        public string GroupId { get; set; }
        public string GroupName { get; set; }
    }

    public class PersonListPassTime
    {
        public long Enable { get; set; }
        public long EndTime { get; set; }
        public long StartTime { get; set; }
    }

    public class SetSystemTime
    {
        public SystemTimeData ParamsInfo { get; set; }
        public string Token { get; set; } = string.Empty;
    }

    public class SystemTimeData
    {
        public int DST { get; set; }
        public string Date { get; set; }
        public string Time { get; set; }
    }

    public class SystemTimeReturn
    {
        public string method { get; set; }
        public object Params { get; set; }
        public int result { get; set; }
    }
}
